home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / include / qlineedit.h.z / qlineedit.h
C/C++ Source or Header  |  2002-04-08  |  7KB  |  226 lines

  1. /**********************************************************************
  2. ** $Id:  qt/qlineedit.h   3.0.3   edited Jan 29 18:15 $
  3. **
  4. ** Definition of QLineEdit widget class
  5. **
  6. ** Created : 941011
  7. **
  8. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the widgets module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QLINEEDIT_H
  39. #define QLINEEDIT_H
  40.  
  41. struct QLineEditPrivate;
  42.  
  43. class QValidator;
  44. class QPopupMenu;
  45.  
  46. #ifndef QT_H
  47. #include "qframe.h"
  48. #include "qstring.h"
  49. #endif // QT_H
  50.  
  51. #ifndef QT_NO_LINEEDIT
  52.  
  53. class Q_EXPORT QLineEdit : public QFrame
  54. {
  55.     Q_OBJECT
  56.     Q_ENUMS( EchoMode )
  57.     Q_PROPERTY( QString text READ text WRITE setText )
  58.     Q_PROPERTY( int maxLength READ maxLength WRITE setMaxLength )
  59.     Q_PROPERTY( bool frame READ frame WRITE setFrame )
  60.     Q_PROPERTY( EchoMode echoMode READ echoMode WRITE setEchoMode )
  61.     Q_PROPERTY( QString displayText READ displayText )
  62.     Q_PROPERTY( int cursorPosition READ cursorPosition WRITE setCursorPosition )
  63.     Q_PROPERTY( Alignment alignment READ alignment WRITE setAlignment )
  64.     Q_PROPERTY( bool edited READ edited WRITE setEdited )
  65.     Q_PROPERTY( bool hasMarkedText READ hasMarkedText DESIGNABLE false )
  66.     Q_PROPERTY( bool hasSelectedText READ hasSelectedText )
  67.     Q_PROPERTY( QString markedText READ markedText DESIGNABLE false )
  68.     Q_PROPERTY( QString selectedText READ selectedText )
  69.     Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled )
  70.     Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
  71.     Q_PROPERTY( bool undoAvailable READ isUndoAvailable )
  72.     Q_PROPERTY( bool redoAvailable READ isRedoAvailable )
  73.  
  74. public:
  75.     QLineEdit( QWidget* parent, const char* name=0 );
  76.     QLineEdit( const QString &, QWidget* parent, const char* name=0 );
  77.     ~QLineEdit();
  78.  
  79.     QString text() const;
  80.  
  81.     QString displayText() const;
  82.  
  83.     int maxLength() const;
  84.  
  85.     bool frame() const;
  86.  
  87.     enum EchoMode { Normal, NoEcho, Password };
  88.     EchoMode echoMode() const;
  89.  
  90.     bool isReadOnly() const;
  91.  
  92.     const QValidator * validator() const;
  93.  
  94.     QSize sizeHint() const;
  95.     QSize minimumSizeHint() const;
  96.  
  97.     int cursorPosition() const;
  98.     bool validateAndSet( const QString &, int, int, int );
  99.  
  100.     int alignment() const;
  101.  
  102. #ifndef QT_NO_COMPAT
  103.     void cursorLeft( bool mark, int steps = 1 ) { cursorForward( mark, -steps ); }
  104.     void cursorRight( bool mark, int steps = 1 ) { cursorForward( mark, steps ); }
  105. #endif
  106.     void cursorForward( bool mark, int steps = 1 );
  107.     void cursorBackward( bool mark, int steps = 1 );
  108.     void cursorWordForward( bool mark );
  109.     void cursorWordBackward( bool mark );
  110.     void backspace();
  111.     void del();
  112.     void home( bool mark );
  113.     void end( bool mark );
  114.  
  115.     void setEdited( bool );
  116.     bool edited() const;
  117.  
  118.     bool hasSelectedText() const;
  119.     QString selectedText() const;
  120.     bool getSelection( int *start, int *end );
  121.     bool isUndoAvailable() const;
  122.     bool isRedoAvailable() const;
  123.  
  124.  
  125. #ifndef QT_NO_COMPAT
  126.     bool hasMarkedText() const { return hasSelectedText(); }
  127.     QString markedText() const { return selectedText(); }
  128. #endif
  129.  
  130.     void     setPasswordChar( QChar c );
  131.     QChar     passwordChar() const;
  132.  
  133.     bool dragEnabled() const;
  134.     int characterAt( int xpos, QChar *chr ) const;
  135.  
  136. public slots:
  137.     virtual void setText( const QString &);
  138.     virtual void selectAll();
  139.     virtual void deselect();
  140.     virtual void clearValidator();
  141.     virtual void insert( const QString &);
  142.     virtual void clear();
  143.     virtual void undo();
  144.     virtual void redo();
  145.     virtual void setMaxLength( int );
  146.     virtual void setFrame( bool );
  147.     virtual void setEchoMode( EchoMode );
  148.     virtual void setReadOnly( bool );
  149.     virtual void setValidator( const QValidator * );
  150.     virtual void setFont( const QFont & );
  151.     virtual void setPalette( const QPalette & );
  152.     virtual void setSelection( int, int );
  153.     virtual void setCursorPosition( int );
  154.     virtual void setAlignment( int flag );
  155. #ifndef QT_NO_CLIPBOARD
  156.     virtual void cut();
  157.     virtual void copy() const;
  158.     virtual void paste();
  159. #endif
  160.     virtual void setDragEnabled( bool b );
  161.  
  162. signals:
  163.     void textChanged( const QString &);
  164.     void returnPressed();
  165.     void selectionChanged();
  166.  
  167. protected:
  168.     bool event( QEvent * );
  169.     void mousePressEvent( QMouseEvent * );
  170.     void mouseMoveEvent( QMouseEvent * );
  171.     void mouseReleaseEvent( QMouseEvent * );
  172.     void mouseDoubleClickEvent( QMouseEvent * );
  173.     void keyPressEvent( QKeyEvent * );
  174.     void imStartEvent( QIMEvent * );
  175.     void imComposeEvent( QIMEvent * );
  176.     void imEndEvent( QIMEvent * );
  177.     void focusInEvent( QFocusEvent * );
  178.     void focusOutEvent( QFocusEvent * );
  179.     void drawContents( QPainter *painter );
  180.     void resizeEvent( QResizeEvent * );
  181. #ifndef QT_NO_DRAGANDDROP
  182.     void dragEnterEvent( QDragEnterEvent * );
  183.     void dragMoveEvent( QDragMoveEvent *e );
  184.     void dragLeaveEvent( QDragLeaveEvent *e );
  185.     void dropEvent( QDropEvent * );
  186. #endif
  187.     void contextMenuEvent( QContextMenuEvent * );
  188.  
  189. #ifndef QT_NO_COMPAT
  190.     void repaintArea( int, int ) { update(); }
  191. #endif
  192.  
  193.     virtual QPopupMenu *createPopupMenu();
  194.     void windowActivationChange( bool );
  195.  
  196. private slots:
  197.     void clipboardChanged();
  198.     void blinkSlot();
  199. #ifndef QT_NO_DRAGANDDROP
  200.     void doDrag();
  201. #endif
  202.     void dragSlot();
  203.     void popupActivated( int r );
  204.  
  205. private:
  206.     void init();
  207.     void blinkOn();
  208.     void updateOffset();
  209.     void updateSelection();
  210.     void removeSelectedText();
  211.     void delOrBackspace( bool backspace );
  212.  
  213.     QLineEditPrivate * d;
  214.  
  215. private:    // Disabled copy constructor and operator=
  216. #if defined(Q_DISABLE_COPY)
  217.     QLineEdit( const QLineEdit & );
  218.     QLineEdit &operator=( const QLineEdit & );
  219. #endif
  220. };
  221.  
  222.  
  223. #endif // QT_NO_LINEEDIT
  224.  
  225. #endif // QLINEEDIT_H
  226.